import requests

def search_online(query, api_key, freshness=None, summary=False, count=10):
    """
    使用 BochaAI Web Search API 进行联网搜索。

    参数:
        query (str): 用户要搜索的查询内容
        api_key (str): 用于身份验证的 API 密钥
        freshness (str, optional): 搜索时间范围，默认值为 'noLimit'
        summary (bool, optional): 是否显示长文本摘要，默认值为 False
        count (int, optional): 返回结果的条数，默认值为 10，范围是 1 到 10

    返回:
        dict: 搜索结果（假设 API 返回的是 JSON 格式的数据）
    """
    url = "https://api.bochaai.com/v1/web-search"  # API URL

    # 请求头，包含授权信息和内容类型
    headers = {
        "Authorization": f"Bearer {api_key}",  # API 密钥需要传递在 Authorization 头中
        "Content-Type": "application/json"  # 请求体格式为 JSON
    }

    # 请求体（JSON 数据），包含搜索查询参数
    payload = {
        "query": query,
        "freshness": freshness if freshness else "noLimit",  # 默认为 "noLimit"
        "summary": summary,
        "count": count
    }

    # 发送 POST 请求
    try:
        response = requests.post(url, headers=headers, json=payload)

        # 检查响应状态码
        if response.status_code == 200:
            return response.json()  # 返回解析后的 JSON 数据
        else:
            return {"error": f"Request failed with status code {response.status_code}, {response.text}"}
    except requests.exceptions.RequestException as e:
        # 捕获网络请求异常
        return {"error": f"An error occurred: {str(e)}"}

# 使用方法示例
api_key = "sk-b33f7fb7cf134e759af352f20ac21405"  # 请替换为您的实际 API Key
search_query = "萧炎是谁"
freshness = "oneWeek"  # 可选项: oneDay, oneWeek, oneMonth, oneYear, noLimit
summary = True  # 是否显示摘要
count = 5  # 返回的结果条数

search_results = search_online(search_query, api_key, freshness, summary, count)

# 只显示第一条搜索结果中的摘要
if "data" in search_results:
    web_pages = search_results.get("data", {}).get("webPages", {}).get("value", [])
    if web_pages:
        # 仅打印第一条结果的摘要
        first_result_summary = web_pages[0].get("summary")
        if first_result_summary:
            print("Summary of the first result:", first_result_summary)
        else:
            print("No summary available for the first result.")
    else:
        print("No search results found.")
else:
    print("Error in search results.")
